"""
ControleDeVendas.py

Este programa permite o registro de vendas e verifica se a meta de vendas de R$300 é atingida. (A meta pode ser alterada conforme seu desejo, basta alterar a variável {meta})
Vendas negativas podem ser removidas. O programa exibe o total de vendas, a média de vendas
e informações sobre o progresso em direção à meta.
Sinta-se livre para remover os emojis e demais tabulões caso tenha problemas, ou instale o pacote "noto-fonts-emoji" na sua distribuição.

Escrito por: [Cybercountry]
Data de Criação: [18/11/2023]
Versão: 1.0

"""

def verificarMeta():
    # Armazena os valores principais (Soma, Meta e o contador)
    soma_vendas= []
    meta = 300
    contador = 0
    
    #Laço de principal da função, para somar as vendas do usuário e realizar as principais operações
    while sum(soma_vendas) < meta:
        valor_venda = input("⤷ Entre com o valor da venda: ")
        
        # Verifica se o usuário não digitou nada
        while not valor_venda:
            if valor_venda == "":
                print("Por favor, entre com um valor válido.")
                valor_venda = input("⤷ Entre com o valor da venda: ")
        # Converte o valor digitado pelo usuário para um valor inteiro
        valor_venda = int(valor_venda)

        #Condição para remover uma venda
        if valor_venda < 0:
            valor_absoluto = abs(valor_venda)
            if valor_absoluto in soma_vendas:
                print(f"\v\t➖ Venda de R${valor_absoluto} removida\n")
                contador = contador - 1
                soma_vendas.remove(valor_absoluto)
                print(f"💲 Total de vendas: R${sum(soma_vendas)}")
            else:
                print(f"\nVenda de R${valor_absoluto} não encontrada na lista de vendas. ❌\n")
            continue

        #Operações para somar as vendas da lista, e chegar a média de vendas, além de verificar o valor necessário para atingir a meta

        soma_vendas.append(valor_venda)
        contador += 1
        total_vendas = sum(soma_vendas)
        restante_vendas = meta - total_vendas #Variável para armazenar o restante até a meta ser atingida
        media_vendas = total_vendas / contador if contador > 0 else 0
        media_vendas = int(media_vendas)

        #Resultados
        print(f"💲Total de vendas: R${total_vendas}\n")
        if total_vendas < meta:
            print(f"\t ▪️ Restante até a meta ser atingida: R${restante_vendas}")
        print(f"\t ▪️ Média de vendas: R${media_vendas}")
        print(f"\t ▪️ Número de vendas: {contador}\n")
    
    print("\nMeta Atingida!🎉\n")

def boasVindas():
    print("##  Seja Bem-vindo ao Controle De Vendas!  ##\n")
    print("Este programa irá ajudá-lo a monitorar suas vendas e garantir que você atinja a meta.\n")

#Chama as funções para execução do programa
boasVindas()
verificarMeta()
